Formally verified speculation and deoptimization in a JIT compiler

نویسندگان

چکیده

Just-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows specialization of program to the common case in order avoid unnecessary overheads due uncommon cases. This form software speculation requires support deoptimization when some fail hold. paper presents a model just-in-time compiler with an intermediate representation explicits synchronization points used and made by compiler's speculation. We also present several optimizations can leverage improved code. The are proved correct help proof assistant. While our work stops short proving native generation, we demonstrate how one could use verified optimization obtain significant speed ups end-to-end setting.

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization

Speculative inlining in just-in-time compilers enables many performance optimizations. However, it also introduces significant complexity. The compiler optimizations themselves, as well as the deoptimization mechanism are complex and error prone. To stabilize our bytecode to bytecode just-in-time compiler, we designed a new approach to validate the correctness of dynamic deoptimization. The app...

متن کامل

CompCert – A Formally Verified Optimizing Compiler

CompCert is the first commercially available optimizing compiler that is formally verified, using machineassisted mathematical proofs, to be exempt from miscompilation. The executable code it produces is proved to behave exactly as specified by the semantics of the source C program. This article gives an overview of the design of CompCert and its proof concept and then focuses on aspects releva...

متن کامل

A Formally-Verified Alias Analysis

This paper reports on the formalization and proof of soundness, using the Coq proof assistant, of an alias analysis: a static analysis that approximates the flow of pointer values. The alias analysis considered is of the points-to kind and is intraprocedural, flow-sensitive, field-sensitive, and untyped. Its soundness proof follows the general style of abstract interpretation. The analysis is d...

متن کامل

Formally Verified Modular Semantics

This chapter presents the results of the validation and verification of a crucial component of BOS, a large safety-critical system that decides when to close and open the Maeslantkering, a storm surge barrier near the city of Rotterdam in the Netherlands. BOS was specified in the formal language Z and model checking has been applied to some of its subsystems during its development. A lightweigh...

متن کامل

Formally Verified System Initialisation

The safety and security of software systems depends on how they are initially configured. Manually writing program code that establishes such an initial configuration is a tedious and error-prone engineering process. In this paper we present an automatic and formally verified initialiser for component-based systems built on the general-purpose microkernel seL4. The construction principles of th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2021

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3434327